#pragma once 

#include "helper/sqlite/stream/Stream.h"
#include "helper/sqlite/QueryResult.h"

namespace helper {
namespace sqlite {
namespace stream {

class Query  : public Stream<Query>{
public:
  Query();
  ~Query() override ;

  Query(const Query & ) = delete;
  Query & operator= (const Query & ) = delete;

  Query(Query && ) = delete;
  Query & operator= (Query && ) = delete;

  QueryResult queryScalar();

  QueryResult queryVector();

  Query & reset() override ;

private:
  Statement _stmt;
};

}//namespace stream
}//namespace sqlite
}//namespace helper
